<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>文章新增</title>
    <link rel="stylesheet" href="./libs/bootstrap/css/bootstrap.min.css">
    <link rel="stylesheet" href="./css/reset.css">
    <link rel="stylesheet" href="./css/iconfont.css">
    <link rel="stylesheet" href="./css/main.css">
    <link rel="stylesheet" href="libs/layui/css/layui.css">
    <script src="libs/layui/layui.js"></script>
</head>

<body>
    <div class="container-fluid">
        <div class="common_title">
            文章新增
        </div>
        <div class="container-fluid common_con">
            <form class="form-horizontal article_form" id="form">
                <div class="form-group">
                    <label for="inputTitle" class="col-sm-2 control-label">文章标题：</label>
                    <div class="col-sm-10">
                        <input type="text" name="title" class="form-control title" id="inputTitle" value="文章标题文字">
                    </div>
                </div>
                <div class="form-group">
                    <label for="inputCover" class="col-sm-2 control-label">文章封面：</label>
                    <div class="col-sm-10">
                        <img src="./images/2.jpg" class="article_cover">
                        <!-- 给选择文件框一个内容改变后触发的事件 onchange -->
                        <input name="cover" type="file" id="inputCover" onchange="changeImage()">
                    </div>
                </div>
                <div class="form-group">
                    <label for="inputCategory" class="col-sm-2 control-label">文章类别：</label>
                    <div class="col-sm-4">
                        <select id="category" class="form-control category" name="categoryId">

                        </select>
                    </div>
                </div>
                <div class="form-group">
                    <label class="col-sm-2 control-label">发布时间：</label>
                    <div class="col-sm-4">
                        <input id="articleDate" name='date' class="jeinput" type="text" placeholder="请选择发布日期" readonly>
                    </div>
                </div>
                <div class="form-group">
                    <label for="inputEmail3" class="col-sm-2 control-label">文章内容：</label>
                    <div class="col-sm-10">
                        <!-- 富文本编辑区域 -->
                        <textarea id="articleContent">请输入文章内容</textarea>
                    </div>
                </div>
                <div class="form-group">
                    <div class="col-sm-offset-2 col-sm-10">
                        <button type="button" class="btn btn-success btn-edit" onclick="return saveArticle('已发布')">发布</button>
                        <!-- 可以在行内为他增加点击事件onclick="return saveArticle('已发布')" -->
                        <button type="button" class="btn btn-default btn-draft" onclick="return saveArticle('')">存为草稿</button>
                        <!-- 可以在行内为他增加点击事件onclick="return saveArticle('草稿')" -->
                    </div>
                </div>
            </form>
        </div>
    </div>
</body>
<script src="./js/jquery-1.12.4.min.js"></script>
<!-- 引入通用ajax请求 -->
<script src="js/login.js"></script>
<!-- 引入模板引擎 -->
<script src="libs/art-template/template-web.js"></script>
<!--  导入富文本编辑器 -->
<script src="libs/tinymce_5.5.1/tinymce.min.js"></script>
<!-- 定义一个文章类别模板 -->
<script type="text/html" id="sort">
    {{each data}}
    <option value="{{$value.id}}">{{$value.name}}</option>
    {{/each}}
</script>
<script>
    $(function() {
            //调用发表文章文章分类下拉框数据
            get_publish_list();

            //调用日期选择控件
            data_control();

            //调用富文本编辑器
            textEditor()
        })
        //获取文章分类下拉框数据
    function get_publish_list() {
        //进入发表文章页面就向服务器发出ajax请求,调用通用ajax请求
        myAjax('get', '/admin/category/list', null, function(resData) {
            //根据响应回来的数据通过模板动态加载到页面
            // console.log(resData);
            let resHtml = template('sort', resData)
                //加载到页面
            $('#category').html(resHtml)
        })
    }
    //初始化日期选择控件 在layui官网找到日期控件
    function data_control() {
        layui.use('laydate', function() {
            var laydate = layui.laydate;
            //  渲染日期面板到 id=articleDate 的文本框中
            laydate.render({
                elem: '#articleDate' //指定元素
            });
        });
    }

    //初始化富文本编辑器
    function textEditor() {
        tinymce.init({
            selector: '#articleContent', //指定到哪个元素
            language: 'zh_CN' // 通过这个就会自动找到 tinymce_5.5.1下面的langs中的zh_CN.js
        });
    }

    //定义文件控件的选择事件 本地图片路径生成
    function changeImage() {
        //获取 file控件中所选择的图片
        // console.log(this);
        let files = document.querySelector('#inputCover').files[0];
        // console.log(files);
        //将文件生成一个本地可以访问到的url路径
        let filePath = URL.createObjectURL(files);
        // console.log(filePath);
        //将本地路径设置给img 的src
        $('.article_cover').prop('src', filePath)
    }

    //实现文章发布/存为草稿功能
    function saveArticle(type) {
        //收集页面上用户输入的数据
        let title = $('#inputTitle').val(); //文章标题
        let cover = document.querySelector('#inputCover').files[0]; //图片路径
        let categoryId = $('#category').val(); //文章分类
        let date = $('#articleDate').val(); //文章发布时间
        let content = tinyMCE.editors['articleContent'].getContent(); //富文本框内容 根据富文本框插件(http://tinymce.ax-z.cn/)获取内容

        console.log(type);

        //通过接口文档得知 提交到服务器的数据是通过formData数据提交的

        let formData = new FormData()
        formData.append('title', title)
        formData.append('cover', cover)
        formData.append('categoryId', categoryId)
        formData.append('date', date)
        formData.append('content', content)
            // formData.append('state',state)
        if (type == '已发布') {
            formData.append('state', '已发布')
        } else {
            formData.append('state', '')
        }

        /* for (let value of formData.values()) {
            console.log(value);
        } */

        //发送ajax请求将formdata数据提交给服务器
        myAjaxImg('POST', '/admin/article/publish', formData, function(resData) {
            console.log(resData);
            if (resData.code !== 200) {
                alert(resData.msg);
                return;
            }

            //如果是成功的话， 当前页面应该跳转到文章列表
            window.location = './article_list.html';
        })
    }
</script>

</html>